MPLABを使ってみよう!
PICターゲット側(PIC周辺回路)の動作チェックをします。ここで初めてボードとプログラムソフトの動作確認ができます。動作確認のプログラムを用意しましたので、ダウンロードして使ってください。プログラムの内容は、ボードの動作チェックが目的ですので、各ポートごとに発光ダイオードを点灯させるプログラムとなっています。まず、記述したプログラムをPICが理解できるデータに変換する必要があります。これをMPLABで行います。
WINDOWSのタスクバーのスタートより、プログラム(P)のMicrochip MPLABから、[MPLAB」をクリックしてください。図1のようなMPLABのロゴが表示され、MPLABが起動します。
![]() |
図1.MPLABのロゴマーク |
MPLABのプロジェクトの登録
プログラムを開発するときには、「プロジェクト」として登録します。図2に示すようにMPLABの左上の表示画面にある「Project」から[New Project...」をクリックすると、図3の「New Project」というダイアログボックスが開きます。
![]() |
図2.MPLABの左上の表示画面 |
ここで、プロジェクトの名称登録を要求されるので、(プロジェクト名).prjとして登録します。例えば、「File Name:」のところで、spectrum.prj とでもしておきましょう。「OK」をクリックします。
![]() |
図3.New Projectダイアログボックス |
そうすると、次に図4のような「Edit Project」というダイアログボックスが開きますので、プロジェクト内容を登録していきます。「Development Mode:」の欄で、「Change...」ボタンをクリックすると、
![]() |
図4.Edit Projectダイアログボックス |
図5のような「Development Mode」というダイアログボックスが開きます。「Development Mode」の「Tools」でPICの種別を指定できます。「Processor:」のデフォルトは「PIC16F84」になっていますので、▼ボタンで「16F877」に設定します。また、「None(Editor Only)」に初めはチェックがついていますが、このままではシミュレーションができません。
必ず、「MPLAB−SIM Simulator」を指定してください。
そうすると中央の空欄に下記にメッセージが表示されます。
Not all peripherals have support for simulation.
Serial I/O is not simulated.
Click 'Details' for additional information
on PIC16F877.
![]() |
図5.Development Mode(Tools)ダイアログボックス |
ついでに、「Clock」のタブをクリックして、クロックの発振タイプと周波数も設定しておきましょう。図6のような「Clock」のダイアログ・ボックスが開きます。「Oscillator Type:」ですが、初めは「LP」となっていますが、ここは「HS」に設定します。クロックの発振モードについては、表1をご覧ください。「Desired Frequency:」は「4MHz」となっていますが、ボードに使用しているセラミック発振子の周波数である「20MHz」に設定します。これで「OK」ボタンを押せば図3の「Edit Project」に戻ります。このときhexファイルがないというメッセージが出ますが、無視して「OK」ボタンを押します。
![]() |
図6.Development Mode(Clock)ダイアログボックス |
発振回路を形成するのに使うPIC内部の回路には4種類の発振モードがあり、接続する振動子の種類によって表1のように使い分けます。通常は「HS」にします。
モード | 説明 | 発振周波数範囲 | 特徴 |
LP | 低電力/水晶発振 (Low Power X'tal) |
200kHz以下 | 極低消費電力動作が可能 |
XT | 水晶/セラミック発振 (X'tal/Resonator) |
4MHz以下 | 標準的 |
HS | 高周波水晶/セラミック発振 (High Speed X'tal/Resonator) |
4MHz〜20MHz | 高速動作 |
RC | nowrapRC発振 (Resister/Capacitor) |
約1MHz以下 (4MHzもあり) |
周波数精度は悪いが安価 |
つぎに、図4の「Edit Project」ダイアログボックスに戻り、Project
Filesのファイル「spectrum.hex」をマウスでクリックして選択してから「Node
Properties」をクリックすると、図7の「Node
Property」ダイアログが開きます。
![]() |
図7.Node Propertiesダイアログボックス |
この中の設定は、
「Hex Format」 → 「INHX8M」をチェック(出力するHexファイルのフォーマット指定)
「Warning level」 → 「all」をチェック(すべてのレベルのワーニングメッセージを出す)
「Case sensitivity」 → 「OFF」をチェック(大文字、小文字の区別なしの設定)
最後にOKを押してダイアログを閉じます。
次に「Add Node...」ボタンをクリックすると、図8のようなソースファイルの名前を設定する「Add Node」ダイアログボックスが開きます。(プロジェクト名).asmとして指定します。例えばファイル名(N)に spectrum.asmと設定し、「OK」をクリックします。
![]() |
図8.Add Nodeダイアログボックス |
図4の「Edit Project」ダイアログボックスに戻り、以上でプロジェクトの登録が完了したので、「OK」ボタンを押します。これでアセンブラのプログラムを開発する準備が整いました。
テキスト・エディタによるソース・ファイルの作成
さて、いよいよ実際のプログラムを作成する段階に入りました。図2に示すMPLABの左上の表示画面にある「File」をクリックし、[New]と操作するとエディタ画面になります。このエディタでプログラムを入力していきます。ただし、このエディタでは日本語のコメントを扱うことはできません。日本語のコメントを付けるには、別のテキスト・エディタですでに入力したものを使うので、「File」をクリックし、[Open...]で開きます。図9は、MPLABのディレクトリに別のテキスト・エディタで作成しておいた「spectrum.asm」というファイルを指定したところです。
![]() |
図9.Open Existing Fileダイアログボックス |
図10に、spectrum.asm というソースファイルを示します。内容はPICのPortBの発光ダイオードを点灯させるプログラムとなっています。10行に満たないプログラムですが、ボードの動作チェックを目的としていますので記述は極力簡単な構成にします。初めから複雑なプログラムを作成してもデバッグに時間がかかり、また動作しない場合にはプログラムが悪いのか、ボードが悪いのか判断が難しくなります。
(注)このソースプログラムは、こちらでダウンロードしてください。
![]() |
図10. spectrum.asmのソースファイル |
早速 アセンブルしてみよう!
さて、いよいよソース・ファイルの作成が完了したら、早速アセンブルしてみます。図2に示すMPLABの左上の表示画面にある「Project」をクリックし、[Make Project]と操作するとアセンブルが開始されます。プログラムが短いのでアセンブル時間は数秒で終了します。アセンブルの結果は「Build Results」のダイアログで教えてくれます。ソースファイルの記述に間違いがあると、「Error」とか、「Build
failed.」などと表示されるので、そのエラー行をダブル・クリックすれば、ソースファイルの誤りのある行にカーソルが移動するので、誤りを素早く知ることができます。
図11のような「Build Results」画面で、「Build
completed successfully.」と表示されれば完了です。ここで、Message[302]
C:\PROGRA~1\MPLAB\SPECTRUM.ASM 11 : Register
in operand not in bank 0. Ensure that bank
bits are correct. というメッセージが出ますが無視してください。
![]() |
図11. Build Results画面 |
誤りがなくなればMakeが成功してオブジェクトファイルと呼ばれる(プロジェクト名).hexファイルが自動生成されます。このファイルがPICへ書き込むためのプログラムそのものです。
例えば、spectrum.asmのソースファイルをアセンブルすると、spectrum.hexというオブジェクトファイルが生成され、その内容は下記のようになっています。
:0A000000831686018312FF3086008C
:00000001FF
![]() |
|
![]() |